package leetCode.offer66;

public class Solution2 implements Solution{


    /**
     * 使用除法的解法
     * @param a
     * @return
     */
    @Override
    public int[] constructArr(int[] a) {
        if(a==null) return null;
        if(a.length==1) return a;
        int[] result = new int[a.length];
        int mulMax = 1;
        for (int k : a) {
            mulMax *= k;
        }
        if(mulMax==0) {
            for(int i=0;i<a.length;i++) {
                if(a[i]!=0) {
                    result[i] = 0;
                }
                else {
                    int mul = 1;
                    for(int j=0;j<a.length;j++) {
                        if(j!=i) {
                            mul*=a[j];
                        }
                    }
                    result[i] = mul;
                }
            }
        }
        else {
            for(int i=0;i<a.length;i++){
                result[i] = mulMax/a[i];
            }
        }
        return result;
    }

}
